home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / reader_requests / scilab / man / man-part1 / cat6 / lmisolver.6 < prev    next >
Text File  |  1999-09-16  |  3KB  |  133 lines

  1.  
  2.  
  3.  
  4. lmisolver(1)                   Scilab Function                   lmisolver(1)
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11. NAME
  12.   lmisolver - linear matrix inequation solver
  13.  
  14. CALLING SEQUENCE
  15.   [XLISTF[,OPT]] = lmisolver(XLIST0,evalfunc [,options])
  16.  
  17. PARAMETERS
  18.  
  19.   XLIST0    : a list of containing initial guess (e.g.
  20.             XLIST0=list(X1,X2,..,Xn))
  21.  
  22.   evalfunc  : a Scilab function ("external" function with specific syntax)
  23.  
  24.   XLISTF    : a list of matrices (e.g. XLIST0=list(X1,X2,..,Xn))
  25.  
  26.   options   : optional parameter. If given, options is a real row vector with
  27.             5 components [Mbound,abstol,nu,maxiters,reltol]
  28.  
  29.   The syntax the function evalfunc must be as follows:
  30.  
  31.   [LME,LMI,OBJ]=evalfunct(X) where X is a list of matrices, LME, LMI are
  32.   lists and OBJ a real scalar.
  33.  
  34. DESCRIPTION
  35.   lmisolver solves the following problem:
  36.  
  37.   minimize f(X1,X2,...,Xn) a linear function of Xi's
  38.  
  39.   under the linear constraints: Gi(X1,X2,...,Xn)=0 for i=1,...,p and LMI
  40.   (linear matrix inequalities) constraints:
  41.  
  42.   Hj(X1,X2,...,Xn) > 0 for j=1,...,q
  43.  
  44.   The functions f, G, H are coded in the Scilab function evalfunc and the set
  45.   of matrices Xi's in the list X (i.e.  X=list(X1,...,Xn)).
  46.  
  47.   The function evalfun must return in the list LME the matrices
  48.   G1(X),...,Gp(X) (i.e. LME(i)=Gi(X1,...,Xn), i=1,...,p).  evalfun must
  49.   return in the list LMI the matrices H1(X0),...,Hq(X) (i.e.
  50.   LMI(j)=Hj(X1,...,Xn), j=1,...,q). evalfun must return in OBJ the value of
  51.   f(X) (i.e. OBJ=f(X1,...,Xn)).
  52.  
  53.   lmisolver  returns in XLISTF, a list of real matrices, i. e.
  54.   XLIST=list(X1,X2,..,Xn) where the Xi's solve the LMI problem:
  55.  
  56.   Defining Y,Z and cost by:
  57.  
  58.   [Y,Z,cost]=evalfunc(XLIST), Y is a list of zero matrices,
  59.   Y=list(Y1,...,Yp), Y1=0, Y2=0, ..., Yp=0.
  60.  
  61.    Z  is a list of square symmetric matrices,
  62.    Z=list(Z1,...,Zq) , which are semi positive definite
  63.    Z1>0, Z2>0, ..., Zq>0  (i.e. spec(Z(j)) > 0),
  64.  
  65.   cost is minimized.
  66.  
  67.   lmisolver can also solve LMI problems in which the Xi's are not matrices
  68.   but lists of matrices. More details are given in the documentation of LMI-
  69.   TOOL.
  70.  
  71. EXAMPLE
  72.   //Find diagonal matrix X (i.e. X=diag(diag(X), p=1) such that
  73.   //A1'*X+X*A1+Q1 < 0, A2'*X+X*A2+Q2 < 0 (q=2) and trace(X) is maximized
  74.   n=2;A1=rand(n,n);A2=rand(n,n);
  75.   Xs=diag(1:n);Q1=-(A1'*Xs+Xs*A1+0.1*eye);
  76.   Q2=-(A2'*Xs+Xs*A2+0.2*eye);
  77.   deff('[LME,LMI,OBJ]=evalf(Xlist)','X=Xlist(1),LME=X-diag(diag(X));...
  78.   LMI=list(-(A1''*X+X*A1+Q1),-(A2''*X+X*A2+Q2)),OBJ= -sum(diag(X))  ');
  79.   X=lmisolver(list(zeros(A1)),evalf);X=X(1)
  80.   [Y,Z,c]=evalf(X)
  81.  
  82. SEE ALSO
  83.   lmitool
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.